import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.io.*;

public class JDKWindow extends JFrame { 

   JTextField javaSourceFileName; //输入Java源文件

   JTextField javaMainClassName;  //输入主类名

   JButton compile,run,edit;

   HandleActionEvent listener;

   public JDKWindow(){

      edit = new JButton("用记事本编辑源文件");

      compile = new JButton("编译");

      run = new JButton("运行");

      javaSourceFileName = new JTextField(10);

      javaMainClassName = new JTextField(10);

      setLayout(new FlowLayout());

      add(edit);

      add(new JLabel("输入源文件名:"));

      add(javaSourceFileName);

      add(compile);

      add(new JLabel("输入主类名:"));

      add(javaMainClassName);

      add(run);

      listener = new HandleActionEvent();

      edit.addActionListener(listener);

      compile.addActionListener(listener);

      run.addActionListener(listener); 

      setVisible(true);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      setBounds(100,100,750,180); 

   }   

   class  HandleActionEvent implements ActionListener { //内部类实例做监视器

      public void actionPerformed(ActionEvent e) {

         if(e.getSource()==edit) {

           Runtime ce=Runtime.getRuntime();

           String name = javaSourceFileName.getText();

           File file=new File("c:/windows","Notepad.exe "+name);

           try{

               ce.exec(file.getAbsolutePath());

           }

           catch(Exception exp){}

         }

         else if(e.getSource()==compile) {

            CompileDialog compileDialog = new CompileDialog();

            String name = javaSourceFileName.getText();

            compileDialog.compile(name);

            compileDialog.setVisible(true);

         }

         else if(e.getSource()==run) {

            RunDialog runDialog =new RunDialog();

            String name = javaMainClassName.getText();

            runDialog.run(name);

            runDialog.setVisible(true);

         }

      }

   }

}
